package com.ruoyi.project.cardbox.orders.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
@Data
public class OrdersBO {
    /** 主键ID */
    private Long id;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderId;

    /** 品名 */
    @Excel(name = "品名")
    private String productName;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;
    /** 纸箱订单量（套） */
    @Excel(name = "纸箱订单量（套）")
    private Long boxQuantity;

    /** 纸箱出库数量*/
    @Excel(name = "纸箱出库数量（套）")
    private Long outBoxQuantity;

    /** 加工费 */
    @Excel(name = "加工费")
    private BigDecimal processingFee;

    /** 整批纸箱面积（m²） */
    @Excel(name = "整批纸箱面积（m²）")
    private BigDecimal boxArea;

    /** 纸板订单量（张） */
    @Excel(name = "纸板订单量（张）")
    private Long cardboardQuantity;

    /** 纸板入库数量（张） */
    @Excel(name = "纸板入库数量（张）")
    private Long inCardboardQuantity;

    /** 整批纸板面积（m²） */
    @Excel(name = "整批纸板面积（m²）")
    private BigDecimal cardboardArea;

    /** 剩余面积 */
    @Excel(name = "剩余面积（m²）")
    private BigDecimal remainingArea;

    /** 整批外购纸板价格 */
    @Excel(name = "整批外购纸板价格")
    private BigDecimal cardboardPrice;

    /** 纸箱单个利润（元/套） */
    @Excel(name = "纸箱单个利润（元/套）")
    private BigDecimal profit;

    /** 税率 */
    @Excel(name = "税率（%）")
    private BigDecimal tax;

    /** 整批利润 */
    @Excel(name = "整批利润")
    private BigDecimal batchProfit;


    /** 订单状态（0草稿 1请购 2入库 3出库） */
    @TableField("status")
    private OrderStatus status;

    /** 订单状态文本（用于导出） */
    @Excel(name = "订单状态")
    private String statusStr;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
    /**
     * 导出用字段：订单状态字符串
     */
    /**
     * 设置显示用的状态字符串
     */
    public void setStatus(OrderStatus status) {
        this.status = status;
        if (status != null) {
            this.statusStr = status.getDesc();
        }
    }
}
